package com.qdxwx.sms;

import java.util.Arrays;

/**
 * @author ZhiYong
 * @dateTime 2020/5/13 9:54
 * @description
 */
public class TencentSmsParams {
    /**
     * 短信应用Id
     */
    private String sdkAppId = "1400351011";
    /**
     * 短信签名
     */
    private String sdkSign = "启点学";
    /**
     * 下发手机号码，采用 e.164 标准，+[国家或地区码][手机号]
     * 示例如：+8613711112222， 其中前面有一个+号 ，86为国家码，13711112222为手机号，最多不要超过200个手机号
     */
    private String[] phoneNumbers;
    /**
     * 模板参数: 若无模板参数，则设置为空
     */
    private String[] templateParams;
    /**
     * 模板Id
     * login 576466; register:576468; repassword:576469; other:577039
     */
    private String templateId;

    /* 用户的 session 内容: 可以携带用户侧 Id 等上下文信息，server 会原样返回 */
    private String sessionContext;

    /**
     * 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid，示例如1400006666
     * @return
     */
    public String getSdkAppId() {
        return sdkAppId;
    }

    public void setSdkAppId(String sdkAppId) {
        this.sdkAppId = sdkAppId;
    }

    public String getSdkSign() {
        return sdkSign;
    }

    public void setSdkSign(String sdkSign) {
        this.sdkSign = sdkSign;
    }

    public String[] getPhoneNumbers() {
        return phoneNumbers;
    }

    public void setPhoneNumbers(String[] phoneNumbers) {
        this.phoneNumbers = phoneNumbers;
    }

    /**
     * 设置单个手机号码
     *
     * @param phoneNumber 手机号
     */
    public void setPhoneNumber(String phoneNumber) {
        if (phoneNumber == null) return;
        if (phoneNumber.charAt(0) != '+') {
            phoneNumber = "+86" + phoneNumber;
        }
        this.phoneNumbers = new String[]{phoneNumber};
    }

    public String[] getTemplateParams() {
        return templateParams;
    }

    public void setTemplateParams(String[] templateParams) {
        this.templateParams = templateParams;
    }

    //设置单个参数
    public void setTemplateParam(String templateParam) {
        this.templateParams = new String[]{templateParam};
    }

    public String getTemplateId() {
        return templateId;
    }

    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    /**
     * 用户的 session 内容: 可以携带用户侧 Id 等上下文信息，server 会原样返回
     * @return session 内容
     */
    public String getSessionContext() {
        return sessionContext;
    }

    /**
     * 用户的 session 内容: 可以携带用户侧 Id 等上下文信息，server 会原样返回
     * @param sessionContext 内容
     */
    public void setSessionContext(String sessionContext) {
        this.sessionContext = sessionContext;
    }

    @Override
    public String toString() {
        return "TencentSmsParams{" +
                "sdkAppId='" + sdkAppId + '\'' +
                ", sdkSign='" + sdkSign + '\'' +
                ", phoneNumbers=" + Arrays.toString(phoneNumbers) +
                ", templateParams=" + Arrays.toString(templateParams) +
                ", templateId='" + templateId + '\'' +
                '}';
    }
}